Remove old child of scrolled window before adding a new one when switching
authorTor Lillqvist <tml@novell.com>
Thu, 26 Apr 2007 06:23:36 +0000 (06:23 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Thu, 26 Apr 2007 06:23:36 +0000 (06:23 +0000)
2007-04-26  Tor Lillqvist  <tml@novell.com>

* gtk/gtkinputdialog.c (gtk_input_dialog_fill_axes)
(gtk_input_dialog_fill_keys): Remove old child of scrolled window
before adding a new one when switching what input device is being
handled. (#399425)

svn path=/trunk/; revision=17656

ChangeLog
gtk/gtkinputdialog.c

index 1ee80d9aca9c6f4e2db1bb1df4adac389db1e0ca..2e9da6e8a2a777455c5c7c3ceac85ac3e0b47760 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-04-26  Tor Lillqvist  <tml@novell.com>
+
+       * gtk/gtkinputdialog.c (gtk_input_dialog_fill_axes)
+       (gtk_input_dialog_fill_keys): Remove old child of scrolled window
+       before adding a new one when switching what input device is being
+       handled. (#399425)
+
 2007-04-26  Matthias Clasen  <mclasen@redhat.com>
 
        * modules/printbackends/lpr/gtkprintbackendlpr.c
index c78a454a1d971a888795e38b96f006e22a15d039..48f9c6090c0cd90d755da5300894552bb3627717 100644 (file)
@@ -532,6 +532,7 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info)
   GtkWidget *option_menu;
   GtkWidget *label;
   GtkWidget *viewport;
+  GtkWidget *old_child;
 
   /* remove all the old items */
   if (inputd->axis_list)
@@ -544,6 +545,9 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info)
   gtk_table_set_col_spacings (GTK_TABLE (inputd->axis_list), 12);
   
   viewport = gtk_viewport_new (NULL, NULL);
+  old_child = gtk_bin_get_child (GTK_BIN (inputd->axis_listbox));
+  if (old_child != NULL)
+    gtk_widget_destroy (old_child);
   gtk_container_add (GTK_CONTAINER (inputd->axis_listbox), viewport);
   gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE);
   gtk_widget_show (viewport);
@@ -680,6 +684,7 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info)
   GtkWidget *button;
   GtkWidget *hbox;
   GtkWidget *viewport;
+  GtkWidget *old_child;
 
   char buffer[32];
   
@@ -695,6 +700,9 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info)
   gtk_table_set_col_spacings (GTK_TABLE (inputd->keys_list), 12);
   
   viewport = gtk_viewport_new (NULL, NULL);
+  old_child = gtk_bin_get_child (GTK_BIN (inputd->keys_listbox));
+  if (old_child != NULL)
+    gtk_widget_destroy (old_child);
   gtk_container_add (GTK_CONTAINER (inputd->keys_listbox), viewport);
   gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE);
   gtk_widget_show (viewport);